package br.ufrn.projetoDB.gerenciadorGaragem.persistencia.DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.ufrn.projetoDB.gerenciadorGaragem.dominio.Motorista;
import br.ufrn.projetoDB.gerenciadorGaragem.dominio.Registro;
import br.ufrn.projetoDB.gerenciadorGaragem.dominio.Reserva;
import br.ufrn.projetoDB.gerenciadorGaragem.dominio.Veiculo;
import br.ufrn.projetoDB.gerenciadorGaragem.persistencia.util.ConnectionFactory;

public class RegistroDao {
	
	private Connection c;
	
	public RegistroDao() {
		c = new ConnectionFactory().getConnection();
	}
	
	public List<Registro> getAllRegistroAbertos() throws SQLException{
		
		List<Registro> result = new ArrayList<Registro>();
		PreparedStatement p = c.prepareStatement("SELECT r.* FROM negocio.registro r WHERE r.disponivel=FALSE AND r.data_chegada IS NULL");
		
		ResultSet rs = p.executeQuery();
		
		if (rs == null)
			return null;
		
		while (rs.next()){
			Registro r = new Registro(rs.getInt("id_registro"));
			r.setReserva(new Reserva(rs.getInt("id_reserva")));
			r.setVeiculo(new Veiculo(rs.getInt("id_veiculo")));
			r.setResponsavel(new Motorista(rs.getInt("id_motorista")));
			r.setData_saida(rs.getDate("data_saida"));
			r.setData_chegada(rs.getDate("data_chegada"));
			
			result.add(r);
		}
		
		return result;
		
	}
	
}
